package 第一章;
import java.util.Scanner;
public class gitPassword {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请选择:");
        while (true){
            int num=sc.nextInt();
            if (num==1){
                System.out.println("请输入加密的密码:");
                String eps=sc.next();
                System.out.println("加密后的密码为:"+encrypassword(eps));
            } else if (num==2){
                System.out.println("请输入解密的密码:");
                String dps=sc.next();
                System.out.println("解密后的密码为:"+decrypassword(dps));
            }else
            {
                System.out.println("程序结束");
                break;
            }
        }
    }
    //加密
    static String encrypassword(String sr){
        //（1）将每个字符的ASCII码加上它在字符串中的位置(1开始)和偏移值3
        byte[] bytes = sr.getBytes();
        for(int i=0;i<bytes.length;i++){
            bytes[i]=(byte)(bytes[i]+i+1+3);
        }
        //（2）将字符串的第一位和最后一位调换顺序
        byte b=bytes[bytes.length-1];
        bytes[bytes.length-1]=bytes[0];
        bytes[0]=b;
        String sr1 = new String(bytes);
        //（3）将字符串反转
        StringBuilder sb = new StringBuilder(sr1);
      sr1 = sb.reverse().toString();
       return sr1;
    }
    //解密
   static String decrypassword(String sr1){
       //（3）将字符串反转
        StringBuilder sb1 = new StringBuilder(sr1);
        String s=sb1.reverse().toString();
       //（2）将字符串的第一位和最后一位调换顺序
        byte [] bytes=s.getBytes();
        byte b=bytes[bytes.length-1];
        bytes[bytes.length-1]=bytes[0];
        bytes[0]=b;
//（1）将每个字符的ASCII码加上它在字符串中的位置(1开始)和偏移值3
        for(int i=0;i<bytes.length;i++){
            bytes[i]=(byte)(bytes[i]-i-1-3);
        }
       String s2=new String(bytes);
        return s2;
        //修改1
    }
}
